home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir26 / epi601_3.zip / FILES12.EXE / DESCRIBE.PGM < prev    next >
Text File  |  1994-08-22  |  4KB  |  122 lines

  1. *****************************************************************************
  2. * This program performs a descriptive analysis on a numeric variable
  3. *
  4. * Denis Coulombier 01/21/94
  5. *****************************************************************************
  6. SET SPLIT=OFF COLOR = 30 31 27 SPLIT=OFF DASH=OFF
  7. CLS
  8. * for GLOB information on the epidemic
  9. DEFINE DECIM    ###### GLOB 100
  10. * DECIM Specifies the number of digits after the comma when displaying
  11. * results 10=1 digit, 100=2 digits, ...
  12. DEFINE N        ###### GLOB
  13. * Number of records with non missing values
  14. DEFINE S1       ###### GLOB
  15. DEFINE S2       ###### GLOB
  16. DEFINE S3       ###### GLOB
  17. DEFINE S4       ###### GLOB
  18. * S1=sigma of X, S2=Sigma X², S3=Sigmma X3, S4=Sigma X^4
  19. DEFINE M1       ###### GLOB
  20. DEFINE M2       ###### GLOB
  21. DEFINE M3       ###### GLOB
  22. DEFINE M4       ###### GLOB
  23. * Variables for holding temporay calculations
  24. DEFINE MEDIAN   ###### GLOB
  25. DEFINE TMPMED   ###### GLOB
  26. * For median calculation
  27. DEFINE KURTOSIS ###### GLOB
  28. DEFINE SKEWNESS ###### GLOB
  29. DEFINE MEAN     ###### GLOB
  30. DEFINE STD      ###### GLOB
  31. DEFINE LO       ###### GLOB 999999999
  32. DEFINE HI       ###### GLOB -99999999
  33. DEFINE VAR      #####
  34. DEFINE VARNAME  __________ GLOB
  35. * Generic variable for calculation
  36. CLS
  37. ECHO Select the file on which to perform the descriptive analysis
  38. READ
  39. CLS
  40. IMMEDIATE VARNAME = "?Press F3 to pick a numeric variable and press <ENTER> ?"
  41. VAR = @VARNAME
  42. * All formulas refer to VAR now
  43.  
  44. DEFINE COUNT ## CUM
  45. * Defined after READ since READ cancel CUM variables
  46. IF VAR <>. THEN COUNT = COUNT + 1
  47. * Increment COUNT for record with non missing values
  48. SORT VAR
  49. IMMEDIATE N = COUNT
  50. * N= Total of records with non missing values
  51. * N being GLOBAL, will not been changed throughout the program
  52. * COUNT being CUM is reset to zero and incremented again before each command
  53. IF (COUNT = (N + 1) DIV 2) THEN TMPMED = VAR
  54. IF (COUNT = (N + 2) DIV 2) THEN TMPMED = TMPMED + VAR
  55. * if N is odd then the ((N+1) DIV 2)th record
  56. * is added 2 times
  57. * if N is even then the 2 records around the
  58. * theoretical median record are added
  59.  
  60. IF VAR <> . THEN S1 = (S1 + VAR)
  61. IF VAR <> . THEN S2 = (S2 + VAR^2)
  62. IF VAR <> . THEN S3 = (S3 + VAR^3)
  63. IF VAR <> . THEN S4 = (S4 + VAR^4)
  64. * Calculation of ΣX, ΣX², ΣX^3, and ΣX^4
  65.  
  66. IF VAR <> . AND VAR < LO THEN LO = VAR
  67. IF VAR <> . AND VAR > HI THEN HI = VAR
  68. * Calculate minimum and maximum range
  69.  
  70. LIST /NOECHO
  71. * list in order to assign values defined previously
  72.  
  73. IMMEDIATE MEDIAN = TMPMED / 2
  74. * MEDIAN was twice the real median to account for even or
  75. * odd number of records
  76. IMMEDIATE MEAN = (S1 / N)
  77. IMMEDIATE MEAN = ROUND(MEAN * DECIM)/DECIM
  78. * ROUND MEAN * DECIM, to set the number of digits after the comma
  79. IMMEDIATE STD = ((S2 - (S1 / N * S1)) / (N - 1))^0.5
  80. IMMEDIATE STD = ROUND(STD * DECIM)/DECIM
  81. IMMEDIATE M3 =S3-3*(S1*S2)/N+3*(S1^3)/(N^2)
  82. IMMEDIATE M4 =(S1^3)/(N^2)
  83. IMMEDIATE M1 =(M3-M4)/(N-1)
  84. IMMEDIATE M2 =(S2-S1^2/N)/(N-1)
  85. * Temporary variables for SKEWNESS calculations
  86. IMMEDIATE SKEWNESS =M1/M2^1.5
  87. IMMEDIATE SKEWNESS = ROUND(SKEWNESS * DECIM)/DECIM
  88. IMMEDIATE M3 =S4-4*S1*S3/N+6*S1^2*S2/(N*N)
  89. IMMEDIATE M4 =3*S1^4/(N^3)
  90. IMMEDIATE M1 =(M3-M4)/(N-1)
  91. IMMEDIATE M2 =(S2-S1^2/N)/(N-1)
  92. * Temporary variables for KURTOSIS calculations
  93. IMMEDIATE KURTOSIS =M1/M2^2
  94. IMMEDIATE KURTOSIS = ROUND(KURTOSIS * DECIM)/DECIM
  95. SORT
  96. ERASE DESCRIBE.TXT
  97. ROUTE DESCRIBE.TXT
  98.  
  99. CLS
  100.  
  101. TYPE "\n\n                Descriptive analysis\n\n"
  102. TYPE "                 Variable: @VARNAME"
  103. TYPE "                    Range: @LO to @HI"
  104. TYPE "                   Median: @MEDIAN"
  105. TYPE "                     Mean: @MEAN"
  106. TYPE "       Standard Deviation: @STD"
  107. TYPE "                 Skewness: @SKEWNESS"
  108. TYPE "                 Kurtosis: @KURTOSIS"
  109. TYPE ""
  110. TYPE "    A skweness of zero means a symetrical distribution"
  111. TYPE "    A kurtosis of 3 means a normal distribution shape." 
  112. TYPE "    A kurtosis of less than 3 means a distribution narrower" 
  113. TYPE "    than a normal distribution, and a kurtosis > 3 means "
  114. TYPE "    a distribution wider than a normal distribution."
  115. ROUTE SCREEN
  116. QUIT
  117.  
  118. The program has to quit because global variables are permanent
  119. A second run of the same program without quiting would lead to false results
  120. because increments on global variables (Sigma X) would be performed twice
  121.  
  122.